package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;

import java.util.List;

/**
 * 自助预订设置，用于配置用户通过小程序预订的相关规则对象 self_booking_settings
 *
 * @author ruoyi
 * @date 2025-05-12
 */
@Data
@ApiModel("自助预订设置，用于配置用户通过小程序预订的相关规则对象")
public class SelfBookingSettings extends AbdulBaseEntity {
    private static final long serialVersionUID = 1L;

    /** 唯一标识每条自助预订设置记录的ID */
    @ApiModelProperty("唯一标识每条自助预订设置记录的ID")
    private Long id;

    /** 用户小程序预订功能是否开启：关闭或开启 */
    @ApiModelProperty("用户小程序预订功能是否开启：关闭或开启")
    @Excel(name = "用户小程序预订功能是否开启：关闭或开启")
    private Integer miniProgramBookingEnabled;

    /** 预订间隔时长，单位为分钟，如30表示间隔30分钟可预订 */
    @ApiModelProperty("预订间隔时长，单位为分钟，如30表示间隔30分钟可预订")
    @Excel(name = "预订间隔时长，单位为分钟，如30表示间隔30分钟可预订")
    private Integer bookingIntervalMinutes;

    /** 预订自动取消时长，单位为分钟，如15表示15分钟未支付则自动取消 */
    @ApiModelProperty("预订自动取消时长，单位为分钟，如15表示15分钟未支付则自动取消")
    @Excel(name = "预订自动取消时长，单位为分钟，如15表示15分钟未支付则自动取消")
    private Integer autoCancelMinutes;

    /** 可预订的天数限制，如7表示最多可预订7天后的时间段 */
    @ApiModelProperty("可预订的天数限制，如7表示最多可预订7天后的时间段")
    @Excel(name = "可预订的天数限制，如7表示最多可预订7天后的时间段")
    private Integer maxBookableDays;

    /** 预订时长规则描述，如"单次预订时长不超过2小时"等自定义规则 */
    @ApiModelProperty("预订时长规则描述，如\"单次预订时长不超过2小时\"等自定义规则")
    @Excel(name = "预订时长规则描述")
    private String bookingDurationRules;

    /** 预订时长，单位为分钟，如120表示单次最长可预订120分钟 */
    @TableField(exist = false)
    @ApiModelProperty("预订时长，单位为分钟，如120表示单次最长可预订120分钟")
    @Excel(name = "预订时长，单位为分钟，如120表示单次最长可预订120分钟")
    private List<Integer> bookingDurationMinutes;

    /** 手机号 */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;
}